home *** CD-ROM | disk | FTP | other *** search
- : srctoman - see comment below
-
-
-
- : process arguments
-
-
-
- while :
-
- do
-
- case $1 in
-
- [0-9]) SECT=$1;;
-
- -) LANG=$1; B='[#:]';;
-
- -awk) LANG=$1; B='#';;
-
- -c) LANG=$1; B='\/\*';;
-
- -f) LANG=$1; B='[Cc]';;
-
- -mk) LANG=$1; B='#';;
-
- -n|-t) LANG=$1; B='\\"';;
-
- -p) LANG=$1; B='{';;
-
- -r) LANG=$1; B='#';;
-
- -C) LANG=$1; B=$2; shift;;
-
- -*) ERROR="unknown option: $1"; break;;
-
- "") ERROR="missing file argument"; break;;
-
- *) break;;
-
- esac
-
- shift
-
- done
-
-
-
- : check error status
-
-
-
- case $ERROR in
-
- "") ;;
-
- *) echo "$0: $ERROR" 1>&2
-
- echo "usage: $0 [-|-awk|-c|-f|-mk|-n|-p|-t|-r] [section] file(s)" 1>&2; exit 1;;
-
- esac
-
-
-
- : set up for file suffix processing
-
-
-
- case $LANG in
-
- "") sh='[:#]'; r='#'; rh=$r; awk='#'; mk='#';
-
- c='\/\*'; h=$c; y=$c; l=$c;
-
- f='[Cc]'; fh=$f; p='{'; ph=$p;
-
- ms='\\"'; nr=$ms; mn=$ms; man=$ms;
-
- esac
-
-
-
- : extract comments
-
-
-
- for i in $*
-
- do
-
- case $LANG in
-
- "") eval B\="\$`expr $i : '^.*\.\([^.]*\)$'`"
-
- test "$B" || { echo "$0: unknown suffix: $i; assuming c" 1>&2; B=$c; }
-
- esac
-
- sed '
-
- /^'"$B"'++/,/^'"$B"'--/!d
-
- /^'"$B"'++/d
-
- /^'"$B"'--/d
-
- s/[ ]*$//
-
- /^'"$B"' \([A-Z]\)/{
-
- s//\1/
-
- /^NAME/{
-
- N
-
- s/^.*\n'"$B"'[ ]*//
-
- h
-
- y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
-
- s/^.*$/.TH & '"$SECT"'\
-
- .ad\
-
- .fi\
-
- .SH NAME/
-
- p
-
- g
-
- s/ [0-9]$//
-
- a\
-
- \\-
-
- p
-
- d
-
- }
-
- /^SUMMARY/d
-
- /^DESCRIPTION/s//.SH &\
-
- .ad\
-
- .fi/
-
- /^BUGS/s//.SH &\
-
- .ad\
-
- .fi/
-
- /^DIAGNOSTICS/s//.SH &\
-
- .ad\
-
- .fi/
-
- /^[A-Z][A-Z][A-Z][^a-z]*$/s//.SH &\
-
- .na\
-
- .nf/
-
- p
-
- d
-
- }
-
- s/^'"$B"'[ ]*//
-
- s/^[ ]*$//
-
- ' $i
-
- done
-
-
-
- exit
-
-
-
- :++
-
- : NAME
-
- : srctoman 1
-
- : SUMMARY
-
- : extract manual page from source file comment
-
- : PACKAGE
-
- : source file maintentance tools
-
- : SYNOPSIS
-
- : srctoman [-|-awk|-c|-f|-mk|-m|-n|-p|-t|-r] [section] file(s)
-
- : DESCRIPTION
-
- : Srctoman converts comments in various programming languages to
-
- : UNIX-style manual pages.
-
- : The command processes comments in the style of newsource(1);
-
- : its standard output is suitable for formatting with nroff(1) or
-
- : troff(1) using the "-man" macro package.
-
- : Typically, srctoman is integrated with make(1) scripts.
-
- :
-
- : Source files are processed in the indicated order; if no
-
- : files argument the command produces no output.
-
- :
-
- : The source file language can be specified through a command-line
-
- : option, or can be implied by the filename suffix.
-
- : The expected start-of-comment symbol is shown in the last column.
-
- :
-
- : .nf
-
- option language comment
-
-
-
- - shell [:#]
-
- -awk awk #
-
- -c c /*
-
- -f fortran [Cc]
-
- -mk make #
-
- -n nroff \\"
-
- -p pascal {
-
- -t troff \\"
-
- -r ratfor #
-
- -C any language next argument
-
- : .fi
-
- :
-
- : .nf
-
- suffix language comment
-
-
-
- .awk awk #
-
- .c c /*
-
- .f fortran [Cc]
-
- .fh fortran [Cc]
-
- .h c /*
-
- .l lex /*
-
- .man nroff,troff \\"
-
- .mk make #
-
- .me nroff,troff \\"
-
- .ms nroff,troff \\"
-
- .nr nroff,troff \\"
-
- .p pascal {
-
- .ph pascal {
-
- .r ratfor #
-
- .rh ratfor #
-
- .sh shell [:#]
-
- .y yacc /*
-
- : .fi
-
- :
-
- : The required format of comments is discussed below, where SOC
-
- : stands for the start-of-comment symbol of the language being used.
-
- :
-
- : 1) Start of manual: SOC, followed by `++'.
-
- :
-
- : 2) Section heading: SOC, blank, section name in upper case.
-
- :
-
- : 3) New paragraph: empty line or line with SOC only.
-
- :
-
- : 4) All other text: SOC and subsequent blanks or tabs are removed.
-
- : Lines that do not start with SOC are left unchanged (useful for
-
- : inclusion of program text).
-
- :
-
- : 5) End of manual: SOC, followed by `--'.
-
- : An end-of-comment may follow if the source file language requires this.
-
- :
-
- : The following manual sections receive a special treatment:
-
- : NAME and SUMMARY should appear at the beginning and in
-
- : this order; DESCRIPTION, DIAGNOSTICS and BUGS will be
-
- : right-margin adjusted.
-
- : Other sections may be added freely without confusing srctoman.
-
- : COMMANDS
-
- : sh(1), sed(1), expr(1)
-
- : SEE ALSO
-
- : newsource(1), modsource(1), xman(1)
-
- : The earlier commands new(1), mod(1), mkman(1) and dssman(1)
-
- : by Ruud Zwart and Ben Noordzij (Erasmus University, Rotterdam)
-
- : DIAGNOSTICS
-
- : The program complains if an unknown language is specified
-
- : or if the language cannot be deduced from the file suffix.
-
- : AUTHOR(S)
-
- : W.Z. Venema
-
- : Eindhoven University of Technology
-
- : Department of Mathematics and Computer Science
-
- : Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands
-
- : CREATION DATE
-
- : Fri Jan 17 22:59:27 MET 1986
-
- : LAST MODIFICATION
-
- : Thu Mar 10 20:08:15 MET 1988
-
- : VERSION/RELEASE
-
- : 1.20
-
- :--
-
-
-
-
-
-